Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 15 Grundlagen zum Erstellen einer Windows-Anwendung
  gp 15.1 Die Entwicklungsumgebung
  gp 15.2 Eine erste Windows-Anwendung
  gp 15.3 Die Internas einer Windowsanwendung
    gp 15.3.1 Projekteinstellungen
    gp 15.3.2 Das Anwendungsframework
    gp 15.3.3 Die Klasse »MyApplication«
    gp 15.3.4 Die Ereignisse des »MyApplication«-Objekts
  gp 15.4 Ereignisse grafischer Windows-Komponenten
    gp 15.4.1 Grundlegende Anmerkungen
    gp 15.4.2 Ereignisse mit Ereignisdaten
    gp 15.4.3 Ereignishandler mit dem Visual Studio 2005 bereitstellen
    gp 15.4.4 Ereignisbehandlung mit den »OnXxx«-Methoden
  gp 15.5 Die Basisklassen einer Form
    gp 15.5.1 Die Klasse »Control«
    gp 15.5.2 Die Klasse »ScrollableControl«
    gp 15.5.3 Die Klasse »ContainerControl«
  gp 15.6 Die Eigenschaften einer Form
    gp 15.6.1 Die Rahmendarstellung einer Form
    gp 15.6.2 Formspezifisches Symbol festlegen
    gp 15.6.3 Die Schaltflächen in der Titelleiste
    gp 15.6.4 Spielereien mit »Opacity« und »TransparencyKey«
    gp 15.6.5 Fenster, die nicht verdeckt werden können
    gp 15.6.6 Den Mauszeiger verändern
    gp 15.6.7 Farbeinstellungen mit dem Typ »Color«
    gp 15.6.8 Schriftart mit dem Typ »Font«
    gp 15.6.9 Die Abmessungen einer Form festlegen
    gp 15.6.10 Die Position eines Fensters
    gp 15.6.11 Die Anzeigezustand eines Fensters nach dem Öffnen
    gp 15.6.12 Die Arbeitsfläche des Fensters (der Clientbereich)
    gp 15.6.13 Die Auflistung »ControlsCollection«
    gp 15.6.14 Zusammenfassung der Eigenschaften des Form-Objekts
  gp 15.7 Ereignisse einer Form
    gp 15.7.1 Ereignisse beim Erzeugen eines Fenster
    gp 15.7.2 Größenänderung einer Form
    gp 15.7.3 Ereignisse beim Schließen eines Fensters
  gp 15.8 Anwendungen mit mehreren Fenstern
    gp 15.8.1 Neue Forms hinzufügen
    gp 15.8.2 Formulare laden, anzeigen, verstecken und schließen
    gp 15.8.3 Mehrere Fenster verwalten
    gp 15.8.4 Formulare in einem eigenen Thread laufen lassen
    gp 15.8.5 Splash-Fenster
  gp 15.9 Modale Dialogfenster
    gp 15.9.1 Layout eines Dialogfensters
    gp 15.9.2 Die Eigenschaft »DialogResult«
    gp 15.9.3 Eine Form modal öffnen
    gp 15.9.4 Die Weitergabe von Resultaten aus einem Dialog
    gp 15.9.5 Fokussierreihenfolge und Standardschaltflächen
  gp 15.10 Meldungsfenster mit »MessageBox«
    gp 15.10.1 Die Methode »MessageBox.Show«
    gp 15.10.2 Der Rückgabewert der Meldungsfenster
  gp 15.11 Das Speichern in der Registrierungsdatenbank
    gp 15.11.1 Die Klassen »Registry« und »RegistrKey«
    gp 15.11.2 Programmbeispiel zum Speichern in der Registrierung
  gp 15.12 Die Klasse »Application«
    gp 15.12.1 Die Datei »AssemblyInfo.vb«
    gp 15.12.2 Mit »Application.DoEvents« wartende Ereignisse abrufen
    gp 15.12.3 Zusammenfassung Eigenschaften und Methoden


Galileo Computing

15.2 Eine erste Windows-Anwendung  toptop

Ein Fenster ist die Schnittstelle zwischen dem Anwender und der Programmlogik. Es ist gleichzeitig Container für die Steuerelemente (Controls), die die Anwendungslogik in visualisierter Form darstellen. Wie der grundsätzliche Ablauf des Erstellens einer Windows-Anwendung ist, möchte ich Ihnen an einem ersten Beispiel zeigen. Dazu wird die Form durch zwei Textboxen und zwei Schaltflächen erweitert (siehe Abbildung 15.2). Die Funktionsweise zur Laufzeit sei wie folgt: Nach dem Klicken auf die mit Kopieren beschriftete Schaltfläche soll der Inhalt der oberen Textbox auch in der unteren angezeigt werden. Die Schaltfläche Beenden schließt die Anwendung.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 15.2     Fensterlayout der ersten Windowsanwendung

Die vier Steuerelemente müssen wir der anfangs noch leeren Form hinzufügen und ausrichten. Sie können das auf zwei Wegen erreichen:

gp  In der Toolbox wird das gewünschte Steuerelement markiert. Fährt man danach mit der Maus über den Designer des Formulars, ändert der Mauszeiger seine Darstellung in ein Kreuz. Durch Drücken und Festhalten der linken Maustaste wird entweder die linke obere oder die rechte untere Position des Steuerelements festgelegt. Halten Sie die Maustaste weiter gedrückt, können Sie das Steuerelement bis zur gewünschten Darstellungsgröße aufziehen.
gp  Die zweite Möglichkeit wäre der einfache Doppelklick auf das Steuerelement in der Toolbox. Daraufhin wird eine Instanz des Steuerelements in der linken oberen Ecke der Arbeitsfläche der Form angezeigt. Das Steuerelement zeichnet sich in einer Standardabmessung.

Steuerelemente positionieren und ausrichten

Unabhängig davon, welche dieser Instanzierungsalternativen Sie bevorzugen, werden Sie nicht umhin kommen, sowohl die Größe als auch die Position des Elements nachträglich zu verändern. Sie müssen dazu nur das entsprechende Steuerelement in der Form auswählen und können es dann an den Markierungspunkten greifen und wunschgemäß anpassen. Die Richtung der sich dann als Pfeile darstellenden Markierungspunkte ist ein Hinweis auf die Richtung der Größenänderung. Fahren Sie mit dem Mauszeiger auf die Fläche des Controls, symbolisiert das Kreuz mit den Pfeilspitzen, dass durch Drücken und Festhalten der linken Maustaste das gesamte Element ohne Veränderung seiner Größe verschoben werden kann.

Wollen Sie mehrere Steuerelemente relativ zueinander ausrichten, stehen Ihnen mehrere Möglichkeiten zur Verfügung:

gp  Sie können die Steuerlemente an den im Form-Designer der Entwicklungsumgebung angezeigten Rasterpunkten ausrichten.
gp  Sie können die Steuerelemente Mithilfe von Bezugslinien positionieren, die während des Verschiebens angezeigt werden, wenn zwei benachbarte Steuerelemente horizontal oder vertikal identisch ausgerichtet sind.
gp  Im Hauptmenü des Visual Studio 2005 bietet der Menüpunkt Format mehrere Möglichkeiten, mehrere gleichzeitig markierte Steuerelemente größenmäßig anzupassen, die Zwischenabstände anzugleichen oder nach verschiedenen Kriterien zu positionieren.

Um die beiden erstgenannten Punkte einzustellen, öffnen Sie den Dialog Optionen des Menüs Extras. Im linken Teilbereich wählen Sie den Knoten Windows Forms Designer aus und können anschließend im rechten Teil unter LayoutMode das von Ihnen bevorzugte Verfahren einstellen (SnapTpGrid oder SnapLines). Darüber hinaus lassen sich hier unter anderem auch die Rasterpunktabstände und die Anzeige der Rasterpunkte im Forms Designer beeinflussen (siehe Bild 15.3).

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 15.3     Einstellen der Positionierungsverhaltens des Forms Designers

Bezeichnung der Steuerelemente

Jedes Steuerelement, das aus der Toolbox in die Form gezogen wird, ist die Instanz einer Klasse und hat damit einen ihn kennzeichnenden Bezeichner, der durch die Eigenschaft Name beschrieben wird. Obwohl das System automatisch einen Namen, angelehnt am Typ des Steuerlements, vergibt, sollten Sie sich angewöhnen, einen beschreibenden festzulegen. Da Sie im Programmcode einer Windows-Anwendung immer wieder Eigenschaften und Methoden der Steuerelemente abrufen oder ändern, vermeiden Sie durch einen beschreibenden Namen Zuordnungsprobleme und der Code wird besser lesbar.

Den Bezeichner ändern Sie am einfachsten, indem Sie das entsprechende Steuerelement im Forms-Designer markieren und danach im Eigenschaftsfenster, das immer die Eigenschaften des aktuell markierten Steuerelements anzeigt, unter Name neu eintragen. Sie können den Bezeichner auch zu jedem späteren Zeitpunkt noch ändern. Automatisch werden alle Anweisungen, in denen der Objektbezeichner auftaucht (z.  B. bei der programmatischen Einstellung einer Eigenschaft des betreffenden Controls), dem neuen angepaßt. In der Vorgängerversion mußten die diesbezüglichen Anweisungen noch manuell geändert werden.

Wir sollten für die Steuerelemente unserer Form aus Abbildung 15.2 die folgenden Namen im Eigenschaftsfenster festlegen:


Tabelle 15.1     Namensvergabe der Steuerelemente

Typ Ursprünglicher Name Eintrag im Eigenschaftsfenster
TextBox textbox1 txtOriginal
TextBox textbox2 txtKopie
Button button1 btnKopieren
Button button2 btnBeenden

Beachten Sie, dass für die Bezeichner ein Präfix gewählt worden ist, aus dem der Typ des Steuerelements hervorgeht. Hier wurde »txt« als Präfix für die Textboxen gewählt und »btn« für die Schaltflächen (die vom Typ Button sind).

Wenn Sie bis hierher gefolgt sind, werden Sie feststellen, dass die Beschriftung Ihrer Schaltflächen nicht mit der in der Abbildung übereinstimmt. Natürlich ist auch für die Beschriftung eine Eigenschaft verantwortlich – die Eigenschaft Text, die wir im Eigenschaftsfenster passend festlegen. Forms haben auch eine Eigenschaft Text. Diese beschreibt den Text in der Titelleiste. In der Abbildung 15.2 ist »Meine erste WinAnwendung« eingetragen.

Wir könnten noch weitere Änderungen am Layout oder an den Verhaltensweisen der beteiligten Komponenten vornehmen, beispielsweise um zu verhindern, dass der Anwender zur Laufzeit die Größe der Form ändert. Für den Moment soll es an dieser Stelle aber ausreichen.

Hinweise zum Eigenschaftsfenster

Im Eigenschaftsfenster lassen sich sehr schnell die Eigenschaften der Komponenten festlegen. Um es möglichst effektiv einzusetzen, sollten Sie sich mit der Bedienung vertraut machen:

gp  Die Liste der Eigenschaften kann sowohl alphabetisch als auch nach Kategorien sortiert angezeigt werden. Die Umschaltung erfolgt mit den beiden in der linken Ecke positionierten Schaltflächen (siehe Abbildung 15.4).
gp  Steuerelemente haben vordefinierte Eigenschaftswerte. Abweichungen von den Standardwerten sind in Fettschrift dargestellt.
gp  Benötigen Sie die Hilfe zu einer Eigenschaft, markieren Sie diese im Eigenschaftsfenster und drücken die (F1)-Taste.
gp  Beabsichtigen Sie, einer bestimmten, gemeinsamen Eigenschaft mehrerer Steuerelemente den gleichen Wert zuzuweisen (z.  B., um bei allen Schaltflächen in einer Form dieselbe Höhe sicherzustellen), kann diese Eigenschaft für alle in Frage kommenden Steuerelemente durch einen einzigen Eintrag im Eigenschaftsfenster verändert werden. Dazu müssen Sie alle betroffenen Steuerelemente im Designer gleichzeitig markieren, indem Sie mit der Maus einen Rahmen um die entsprechenden Steuerelemente ziehen. Sie können auch zuerst ein Steuerelement markieren und danach der Reihe nach die anderen, während Sie die (Strg)-Taste gedrückt halten.
gp  Eine Eigenschaftsänderung kann zurückgesetzt werden, wenn die entsprechende Eigenschaft markiert ist und im dazugehörigen Kontextmenü Zurücksetzen gewählt wird.
gp  Um unteren Bereich des Eigenschaftsfensters sehen Sie einen Bereich, in dem die markierte Eigenschaft mit wenigen Worten erläutert wird. Für eine erste Erklärung reicht der Text meist aus, wenn Sie eine genauere benötigen, müssen Sie in die Dokumenatation schauen. Sie können daher diesen Bereich über das Kontextmenü ausblenden, wenn Sie darauf keinen Wert legen.
gp  Streng genommen trägt das Eigenschaftsfenster seinen Namen zu Unrecht, da in der Symbolleiste von der Ansicht der Liste aller Eigenschaften auch auf die Liste der zu dem ausgewähltem Komponententyp gehörenden Ereignisse umgeschaltet werden kann. Die Ereignisliste kann ebenfalls sowohl alphabetisch, als auch nach Gruppen geordnet angezeigt werden.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 15.4     Symbolleiste des Eigenschaftsfensters

Der Code einer Windows-Anwendung

Windows-Anwendungen sind ereignisgesteuert. Jedes Peripheriegerät, sei es der Drucker, die Maus oder die Tastatur, kann Ereignisse auslösen. Auch Steuerelemente gliedern sich in das Ereignismodell ein. Klickt der Benutzer zum Beispiel zur Laufzeit des Programms auf eine Schaltfläche, wird das Ereignis Click ausgelöst. Wenn für das Ereignis ein Ereignishandler registriert ist, wird dieser ausgeführt. Sie müssen nicht jedes Ereignis einer Windows-Komponente behandeln sondern nur die, die zur Interaktion mit dem Benutzer benötigt werden.

Am einfachsten können Sie einen Ereignishandler implementieren, wenn Sie im Designer auf ein Steuerelement doppelt klicken. Daraufhin öffnet sich der Codeeditor der Form und der Eingabecursor befindet sich in einer Methode, die mit einem bestimmten Ereignis verbunden ist. Dabei handelt es sich um das Standardereignis des betreffenden Steuerelements. Bei einem Button handelt es sich um Click, bei einer Textbox um das Ereignis TextChanged und bei einer Form um Load.

Ein Doppelklick auf den Kopieren-Button (siehe Abbildung 15.2) erzeugt die folgende Methodensignatur:


Private Sub btnKopieren_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnKopieren.Click
End Sub

Die Methode lautet auf den Namen btnKopieren_Click und setzt sich aus dem Namen des Steuerelements und dem Ereignisbezeichner zusammen. Beide sind durch einen Unterstrich voneinander getrennt. Der ereignisspezifischen Parameterliste wollen wir an dieser Stelle noch keine Beachtung schenken. Hinter der Parameterliste ist mit dem Handles-Statement angegeben, bei welchem Ereignis der Ereignishandler ausgeführt wird. In unserem Beispiel handelt es sich um das Click-Ereignis des Objekts mit dem Bezeichner btnKopieren. Diese Angabe, und nicht der Methodenname ist ausschlaggebend. Letzteren können Sie nach Belieben ändern, ohne die Verhaltensweise der Anwendung dadurch zu beeinflussen.

Im Anweisungsblock werden die Anweisungen codiert die ausgeführt werden, wenn der Anwender zur Laufzeit auf die Schaltfläche mit der Bezeichnung btnKopieren klickt. Da wir uns zum Ziel gesetzt haben, den Inhalt der Textbox txtOriginal in die Textbox txtKopie zu schreiben, ist folgende Anweisung notwendig:


Private Sub btnKopieren_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnKopieren.Click
txtKopie.Text = txtOriginal.Text
End Sub

Die Eigenschaft Text einer TextBox beschreibt den angezeigten Textboxinhalt. Daher wird der Inhalt der Eigenschaft Text des Objekts txtOriginal ausgewertet und der Eigenschaft Text des Objekts txtKopie zugewiesen.

Analog beschaffen wir uns auch den Ereignishandler des Click-Ereignisses der Schaltfläche btnBeenden und schreiben den folgenden Code:


Private Sub btnBeenden_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnBeenden.Click
Application.Exit()
End Sub

Die Klasse Application stellt Methoden und Eigenschaften für die Verwaltung einer Anwendung zur Verfügung. Eine von diesen ist die parameterlose, statische Methode Exit, um die laufende Anwendung zu schließen.

Nachfolgend der zusammengefasste Code. Beachten Sie, dass sich dieser in der Sourcecodedatei Form1vbs befindet.


' ----------------------------------------------------------
' Beispiel: ...\Kapitel 15\FirstApplication
' ----------------------------------------------------------
Public Class Form1
Private Sub btnKopieren_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnKopieren.Click
txtKopie.Text = txtOriginal.Text
End Sub
Private Sub btnBeenden_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnBeenden.Click
Application.Exit()
End Sub
End Class

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de